package mode.design_mode_03_proxy_dynamic;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;

/**
 * ***********************************************************
 *
 * @类名 : controller.design_mode_03_proxy_dynamic.类名
 * @DESCRIPTION : 动态代理类
 * @AUTHOR :  一个风情万种的男子
 * @DATE : 2016/4/15
 * ***********************************************************
 */
public class DynamicProxy<T> {
    public static <T> T newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler handler) {
        //寻找JoinPoint连接点，AOP框架使用元数据定义
        if (true) {
            //执行一个前置通知
            (new BeforeAdvice()).exec();
        }
        //执行目标，并返回结果
        return (T) Proxy.newProxyInstance(loader,interfaces,handler);

    }

}
